#ifndef TRAMO_H
#define TRAMO_H

#include "Ciudad.h"
#include "TipoTransporte.h"

class Tramo{
	friend ostream &operator<<(ostream&, const Tramo &);
protected:
	Puntero<Ciudad> ciudadOrigen;
	Puntero<Ciudad> ciudadDestino;
	int distancia;
	TipoTransporte tipoTransporte;
	
public:
	// Constructores
	Tramo(const Puntero<Ciudad> Origen, const Puntero<Ciudad> Destino, int Distancia, TipoTransporte Tipo);
	//Destructor
	virtual ~Tramo();
	
	Puntero<Ciudad> ObtenerOrigen() const;
	Puntero<Ciudad> ObtenerDestino() const;
	int ObtenerDistancia() const;
	TipoTransporte ObtenerTipoTransporte() const;

	//Operadores
	bool operator==(const Tramo &t) const;
	bool operator<(const Tramo &t) const;
    bool operator>(const Tramo &t) const;
	
};

#endif